QT调用Python脚本(无参,有参,返回值)和QT5.12安装详细讲解,避坑手册

您所在的位置:网站首页 python mariadb无返回值 QT调用Python脚本(无参,有参,返回值)和QT5.12安装详细讲解,避坑手册

QT调用Python脚本(无参,有参,返回值)和QT5.12安装详细讲解,避坑手册

2023-07-17 21:56| 来源: 网络整理| 查看: 265

QT调用Python脚本(无参,有参,返回值)详细讲解,避坑手册 因为工作需要,用QT调用Python脚本。网上查了一大堆,踩了无数的坑。终于算是可以了啊。 一个电脑小白的自我成长之路,总是那么漫长,充满疑惑苦恼,无奈,和成功之后的喜悦,开心,欣喜。

1.QT5.12安装

由于现在的Python版本基本都是3.7及其以上版本,基本都是64位。所以,先将QT版本也换一换,最少要换成64位的,我就在这踩的一个深深的坑。 QT5.12以及以上版本安装,直接截图啦。Qt5.12下载网址: http://download.qt.io/archive/qt/5.12/5.12.2/ (选择这个,64位安装包大包在里面,别看名字以为是32位哈,不注意这也是一个小坑) 在这里插入图片描述 下载完后,打开文件夹。 在这里插入图片描述 右键,管理员身份运行(避免安装过程,360老弹修改啥啥,允许阻止啥的) 在这里插入图片描述 运行后,出现下面界面,点击next. 在这里插入图片描述输入自己注册的QT账号,和密码。如果没有,填signup,下面3行。邮箱,密码(密码需要有大写字母,小写字母,数字组成)然后,next。(没有账号的,QT会发送一个认证到你的邮箱,需要登录邮箱进行认证) 在这里插入图片描述 后面就下一步,然后选择这两个组件 在这里插入图片描述 点击我同意I agree.后面一路下一步,等待安装完成。 在这里插入图片描述

2.创建Python文件

文件名为aa.py(注意文件名不要写test,这也是一个坑,因为pyhon环境中有test.py文件,名字冲突啦)

def show(): print("hello!") def sum(a,b): return (a+b) def main(): show() print(sum(1,2)) if __name__ == '__main__': main() 3.打开QT

点击newProject,创建一个新QT项目名字为05_QtincludePython(名字自己取就行),然后右键,添加库 在这里插入图片描述 在这里插入图片描述 选外部库,下一步 在这里插入图片描述 接着,将自己电脑中的python安装环境的libs和include文件夹路径添加到里面,Windows打钩,其他不选。如下 在这里插入图片描述 添加后,.pro文件中,会出现如下几行包含路径代码,将下方的4行注释掉,保留上方4行(这里也是一个坑,太鸡儿坑啦) 在这里插入图片描述运行一下你的QT文件,生成对应的build-05_QtincludePython-Desktop_Qt_5_12_6_MinGW_64_bit-Debug文件。很长,很长!!!!!!请记住它

**环境变量对应添加:**电脑→属性→高级系统设置→ 环境变量→path 在这里插入图片描述 在这里插入图片描述

4.python动态库,静态库相应修改

在python的libs文件中(前面添加的文件路径),添加python3.dll,python37.dll两个动态库,(这两个动态库在libs文件的外层文件Anaconda3中,认真找别找错了),然后将python37.lib复制一下并重新命名为python37d.lib,也放在libs文件中。(此处坑多)在这里插入图片描述

5.放入python文件脚本

将自己写好的python脚本放入build-05_QtincludePython-Desktop_Qt_5_12_6_MinGW_64_bit-Debug文件debug文件中 在这里插入图片描述

6.在QT文件中添加调用代码

在sources源文件中添加代码: 在这里插入图片描述 初始化前添加这行代码 Py_SetPythonHome(L"E:/Users/dell/Anaconda3"); //这一步很重要哈,又可能QT找不到python根目录坑了我几个小时,一直报ModuleNotFoundError: No module named ‘encodings‘的错误。网上查查,终于找到了,原因是没有找到python的根目录

Py_SetPythonHome(L"E:/Users/dell/Anaconda3"); //这一步很重要哈,又可能QT找不到python根目录 Py_Initialize(); Py_Initialize(); //如果初始化失败,返回 if(!Py_IsInitialized()) { qDebug() qDebug()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3